#ifndef ODN_PHYS_POINTOBJECT_H
#define ODN_PHYS_POINTOBJECT_H

#include "odn_phys_PhysicalObject.h"

namespace ouden
{
	namespace physics
	{
		
		//Base class for point objects 
		class ODN_PointObject : ODN_PhysicalObject
		{
			
		public:
			
			//Constructor to attatch the point object to an already existent point 
			ODN_PointObject(ODN_Point* Point, float Radius);
			
			//Constructor to create a new point object 
			ODN_PointObject(Vector3D Pos, float Radius);
			
			virtual ~ODN_PointObject()		{}
			
			virtual bool Update()
			{
				
				//TODO: Only update parts that a point object will have 
				
			}
			
			//TODO: Think of way to prevent addition of points, bones, colliders, springs, restrictions etc. 
			
			//Overload the move function to simply move the single point as that is all there is 
			virtual void moveTo(Vector3D Pos)		{ singlepoint->pos = Pos; };
			
			//Overload the get position function to return the position of the single point pointer 
			virtual Vector3D getPos()		{ return singlepoint->pos; }
			
		private:
			
			//Pointer to the single point 
			ODN_Point* singlepoint;
			
			//Angle at which to draw object 
			//TODO: Check if really need this 
			float angle;
			
		};
		
	} //namespace physics
} //namespace ouden

#endif //ODN_PHYS_POINTOBJECT_H
